<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <IncludeRemoteExecutor>true</IncludeRemoteExecutor>
    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-linux;$(NetCoreAppCurrent)-browser;$(NetCoreAppCurrent)-osx</TargetFrameworks>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="$(CommonTestPath)System\Collections\DictionaryExtensions.cs"
             Link="Common\System\Collections\DictionaryExtensions.cs" />
    <Compile Include="$(CommonTestPath)System\Security\Cryptography\ByteUtils.cs"
             Link="Common\System\Security\Cryptography\ByteUtils.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\procfs\Interop.ProcFsStat.cs"
             Link="Common\Interop\Linux\procfs\Interop.ProcFsStat.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\procfs\Interop.ProcFsStat.TryReadStatusFile.cs"
             Link="Common\Interop\Linux\Interop.ProcFsStat.TryReadStatusFile.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\os-release\Interop.OSReleaseFile.cs"
             Link="Common\Interop\Linux\os-release\Interop.OSReleaseFile.cs" />
    <Compile Include="$(CommonPath)SourceGenerators\SourceWriter.cs"
             Link="Common\SourceGenerators\SourceWriter.cs" />
    <Compile Include="$(CommonPath)System\CharArrayHelpers.cs"
             Link="Common\System\CharArrayHelpers.cs" />
    <Compile Include="$(CommonPath)System\Collections\Generic\ArrayBuilder.cs"
             Link="Common\System\Collections\Generic\ArrayBuilder.cs" />
    <Compile Include="$(CommonPath)System\IO\PathInternal.CaseSensitivity.cs"
             Link="Common\System\IO\PathInternal.CaseSensitivity.cs" />
    <Compile Include="$(CommonPath)System\IO\RowConfigReader.cs"
             Link="Common\System\IO\RowConfigReader.cs" />
    <Compile Include="$(CommonPath)System\IO\StringParser.cs"
             Link="Common\System\IO\StringParser.cs" />
    <Compile Include="$(CommonPath)System\Net\HttpDateParser.cs"
             Link="Common\System\Net\HttpDateParser.cs" />
    <Compile Include="$(CommonPath)System\Net\HttpKnownHeaderNames.cs"
             Link="Common\System\Net\HttpKnownHeaderNames.cs" />
    <Compile Include="$(CommonPath)System\Net\HttpKnownHeaderNames.TryGetHeaderName.cs"
             Link="Common\System\Net\HttpKnownHeaderNames.TryGetHeaderName.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\IHttpStreamHeadersHandler.cs"
             Link="Common\System\Net\Http\aspnetcore\IHttpStreamHeadersHandler.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\DynamicTable.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\DynamicTable.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\HeaderField.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\HeaderField.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\HPackDecoder.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\HPackDecoder.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\HPackDecodingException.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\HPackDecodingException.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\HPackEncoder.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\HPackEncoder.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\HPackEncodingException.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\HPackEncodingException.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\Huffman.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\Huffman.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\HuffmanDecodingException.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\HuffmanDecodingException.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\IntegerDecoder.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\IntegerDecoder.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\IntegerEncoder.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\IntegerEncoder.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\H2StaticTable.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\H2StaticTable.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\H2StaticTable.Http2.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\H2StaticTable.Http2.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http2\Hpack\StatusCodes.cs"
             Link="Common\System\Net\Http\aspnetcore\Http2\Hpack\StatusCodes.cs" />
    <Compile Include="$(CommonPath)System\Net\Http\aspnetcore\Http3\Helpers\VariableLengthIntegerHelper.cs"
             Link="Common\System\Net\Http\aspnetcore\Http3\Helpers\VariableLengthIntegerHelper.cs" />
    <Compile Include="$(CommonPath)System\Text\SimpleRegex.cs"
             Link="Common\System\Text\SimpleRegex.cs" />
    <Compile Include="$(CommonPath)System\Text\ValueStringBuilder.cs"
             Link="Common\System\Text\ValueStringBuilder.cs" />
    <Compile Include="$(CommonPath)System\Security\IdentityHelper.cs"
             Link="Common\System\Security\IdentityHelper.cs" />
    <Compile Include="$(CoreLibSharedDir)System\PasteArguments.cs"
             Link="System\PasteArguments.cs" />
    <Compile Include="Tests\Interop\procfsTests.cs" />
    <Compile Include="Tests\Interop\OSReleaseTests.cs" />
    <Compile Include="Tests\SourceGenerators\SourceWriterTests.cs" />
    <Compile Include="Tests\System\IO\PathInternal.Tests.cs" />
    <Compile Include="Tests\System\IO\StringParserTests.cs" />
    <Compile Include="Tests\System\Net\HttpDateParserTests.cs" />
    <Compile Include="Tests\System\PasteArgumentsTests.cs" />
    <Compile Include="Tests\System\Security\IdentityHelperTests.cs" />
    <Compile Include="Tests\System\Text\SimpleRegexTests.cs" />
    <Compile Include="Tests\System\Text\ValueStringBuilderTests.cs" />
    <Compile Include="Tests\System\Collections\Generic\ArrayBuilderTests.cs" />
    <Compile Include="Tests\System\IO\RowConfigReaderTests.cs" />
    <Compile Include="Tests\System\Net\HttpKnownHeaderNamesTests.cs" />
    <Compile Include="Tests\System\Net\MultiArrayBufferTests.cs" />
    <Compile Include="Tests\System\Net\aspnetcore\Http2\DynamicTableTest.cs" />
    <Compile Include="Tests\System\Net\aspnetcore\Http2\HPackDecoderTest.cs" />
    <Compile Include="Tests\System\Net\aspnetcore\Http2\HPackIntegerTest.cs" />
    <Compile Include="Tests\System\Net\aspnetcore\Http2\HuffmanDecodingTests.cs" />
    <Compile Include="Tests\System\Net\aspnetcore\Http3\VariableLengthIntegerHelperTests.cs" />
    <Compile Include="System\Net\Sockets\Fletcher32.cs"
             Link="System\Net\Sockets\Fletcher32.cs" />
    <Compile Include="$(CommonPath)System\Net\Logging\NetEventSource.Common.cs"
             Link="Common\System\Net\Logging\NetEventSource.Common.cs" />
    <Compile Include="$(CommonPath)System\IO\PathInternal.cs"
             Link="System\IO\PathInternal.cs" />
    <Compile Include="System\IO\ConnectedStreams.cs" Link="System\IO\ConnectedStreams.cs" />
    <Compile Include="Tests\System\IO\ConnectedStreamsTests.cs" />
    <Compile Include="$(CommonPath)System\Net\ArrayBuffer.cs" Link="Common\System\Net\ArrayBuffer.cs" />
    <Compile Include="$(CommonPath)System\Net\MultiArrayBuffer.cs" Link="Common\System\Net\MultiArrayBuffer.cs" />
    <Compile Include="$(CommonPath)System\Net\StreamBuffer.cs" Link="Common\System\Net\StreamBuffer.cs" />
    <Compile Include="$(CommonPath)System\Obsoletions.cs" Link="Common\System\Obsoletions.cs" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="$(CommonPath)System\IO\PathInternal.Windows.cs"
             Link="System\IO\PathInternal.Windows.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs"
             Link="Common\Interop\Windows\Interop.Libraries.cs" />
    <Compile Include="Tests\System\IO\PathInternal.Windows.Tests.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FormatMessage.cs"
             Link="Common\Interop\Windows\kernel32\Interop.FormatMessage.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Errors.cs"
             Link="Common\Interop\Windows\Interop.Errors.cs" />
    <Compile Include="$(CommonPath)System\IO\Win32Marshal.cs"
             Link="Common\System\IO\Win32Marshal.cs" />
    <Compile Include="Tests\System\IO\Win32Marshal.Tests.cs" />
    <Compile Include="$(CoreLibSharedDir)System\PasteArguments.Windows.cs"
             Link="System\PasteArguments.Windows.cs" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != 'windows'">
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.UnixFileSystemTypes.cs"
             Link="Common\Interop\Unix\System.Native\Interop.UnixFileSystemTypes.cs" />
    <Compile Include="Tests\System\IO\PathInternal.Unix.Tests.cs" />
    <Compile Include="$(CommonPath)System\IO\PathInternal.Unix.cs"
             Link="System\IO\PathInternal.Unix.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.PathConf.cs"
             Link="Common\Interop\Unix\Interop.PathConf.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MountPoints.FormatInfo.cs"
             Link="Common\Interop\Unix\System.Native\Interop.MountPoints.FormatInfo.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\Interop.Libraries.cs"
             Link="Common\Interop\Unix\Interop.Libraries.cs" />
    <Compile Include="$(CoreLibSharedDir)System\PasteArguments.Unix.cs"
             Link="System\PasteArguments.Unix.cs" />
  </ItemGroup>
  <!-- Linux and browser specific files -->
  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'linux' or '$(TargetPlatformIdentifier)' == 'browser'">
    <Compile Include="$(CommonPath)Interop\Linux\Interop.Libraries.cs"
             Link="Common\Interop\Linux\Interop.Libraries.cs" />
  </ItemGroup>
  <!-- Linux specific files -->
  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'linux'">
    <Compile Include="Tests\Interop\cgroupsTests.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\cgroups\Interop.cgroups.cs"
             Link="Common\Interop\Linux\cgroups\Interop.cgroups.cs" />
  </ItemGroup>
  <!-- OSX specific files -->
  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'osx'">
    <Compile Include="$(CommonPath)Interop\OSX\Interop.Libraries.cs"
             Link="Common\Interop\OSX\Interop.Libraries.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="CommonTest\System\" />
    <Folder Include="Common\System\Security\Cryptography\" />
    <Folder Include="System\Net\Sockets\" />
    <Folder Include="System\Net\VirtualNetwork\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="$(MicrosoftCodeAnalysisVersion_LatestVS)" PrivateAssets="all" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="$(CommonTestPath)StreamConformanceTests\StreamConformanceTests.csproj" />
  </ItemGroup>
</Project>
